﻿#include <iostream>
#include <io.h>
#include <direct.h>
#include "Book.h"
#include "Reader.h"
#include "Menu.h"
#include "Exception.h"
#include "Admin.h"
#include "Windows.h"

using namespace std;

void createDateFolder()
{
	// 创建文件夹
	string data_folder = "data";
	if (0 != _access(data_folder.c_str(), 0))
	{
		// 返回 0 表示创建成功，-1 表示失败
		if (_mkdir(data_folder.c_str()) == 0)
			cout << "数据目录创建成功！" << endl;
		else
			cout << "数据目录创建失败！" << endl;
	}
}

void loadFiles()
{
	Reader::loadFromFile();
	Book::loadFromFile();
}

int main()
{
	// utf8编码显示
	system("chcp 65001");
	// 加载文件
	loadFiles();
	// 等待3秒
	Sleep(3000);
	// 清屏
	system("cls");
	while (true)
	{
		cout << "欢迎使用图书馆管理系统" << endl;
		try
		{
			Menu::MenuSelection main_option = Menu::mainMenu.show();
			if (main_option == 1)
			{
				// 验证管理员密码
				if (Admin::Login() == 0)
				{
					Menu::MenuSelection admin_option = Menu::adminMenu.show();
					if (admin_option == 1)
					{
						// 读者管理（1）
						Menu::MenuSelection admin_reader_option = Menu::adminReaderMenu.show();
						if (admin_reader_option == 1)
						{
							// 新建读者
							Reader::addReader();
						}
						else if (admin_reader_option == 2)
						{
							// 查询读者
							Reader::listReader();
						}
						else if (admin_reader_option == 3)
						{
							// 删除读者
							Reader::delReader();
						}
					}
					else if (admin_option == 2)
					{
						// 图书管理（2）
						Menu::MenuSelection admin_book_option = Menu::adminBookMenu.show();
						if (admin_book_option == 1)
						{
							// 图书入库（1）
							Book::addBook();
						}
						else if (admin_book_option == 2)
						{
							// 查看图书列表（查看全部） (2)
							Book::listBook();
						}
						else if (admin_book_option == 3)
						{
							// 图书销毁
							Book::delBook();
						}
					}
					else if (admin_option == 3)
					{
						// 借阅管理（3）
					}
				}
			}
			else if (main_option == 2)
			{
				// 借阅系统
				Menu::MenuSelection borrow_option = Menu::borrowMenu.show();
				if (borrow_option == 1) 
				{
					// 借书
					// todo
				}
				else if (borrow_option == 2) 
				{
					// 还书
				}
				else if (borrow_option == 3)
				{
					// 查询
				}

			}
		}
		catch (ExitException& e)
		{
			// 退出
			cout << "用户退出...." << endl;
			exit(0);
		}
		catch (GobackException& e)
		{
			// 退出
			exit(0);
		}
	}

	return 0;
}
